//package com.hejia.alauda.utils;
//
//import java.math.BigDecimal;
//import java.util.Properties;
//import java.util.UUID;
//
//import org.apache.commons.lang3.StringUtils;
//import org.apache.commons.lang3.time.FastDateFormat;
//import org.apache.commons.logging.Log;
//import org.apache.commons.logging.LogFactory;
//
//import chinapay.PrivateKey;
//import chinapay.SecureLink;
//
//import com.hejia.alauda.entity.Order;
//
///**
// * 
// * Chinapay编码帮助类
// *
// *
// * Created by showone on 2014 上午8:53:30.
// */
//public class ChinapayUtil {
//	private static final Log logger = LogFactory.getLog(ChinapayUtil.class);
//	
//	/**
//	 * 获取upop订单号
//	 * 
//	 * @param orderId
//	 * @return
//	 */
//	public static String getUpopOrderId(Long orderId) {
//		int hashCode = UUID.randomUUID().toString().hashCode();
//		if (hashCode < 0) {
//			hashCode = -hashCode;
//		}
//		return "01" + String.format("%014d", hashCode);
//	}
//
//	/**
//	 * 生成交易金额
//	 * 
//	 * @param amount
//	 * @return
//	 */
//	public static String genTransAmount(BigDecimal amount) {
//		int iAmount = (int) (amount.doubleValue() * 100);// 交易金额以分为单位
//		String strAmount = StringUtils.leftPad(Integer.toString(iAmount), 12,
//				"0");// 交易金额12位前面补0
//		return strAmount;
//	}
//	
//	/**
//	 * 生成upop签名
//	 * 
//	 * @param order
//	 *            订单
//	 * @param action
//	 *            操作类型: PAY-支付，REFUND-退款，QUERY-查询
//	 * @return
//	 */
//	public static String genUpopSign(Order order, String action) {
//		if (order == null) {
//			logger.error("order is null!");
//			return null;
//		}
//		// 初始化key文件：
//		PrivateKey key = new PrivateKey();
//
//		Properties config = ChinapayConfig.getInstance().getProperties();
//		String merid = config.getProperty("chinapay.upop.merid");
//		String path = ChinapayUtil.class.getClassLoader().getResource("")
//				.getFile()
//				+ config.getProperty("chinapay.upop.merkey.filepath");
//
//		boolean flag = key.buildKey(merid, 0, path);
//		if (flag == false) {
//			logger.error("get Chinapay UPOP merchant private key failed!");
//			return null;
//		}
//		String transAmt = genTransAmount(order.getAmount());
//		String transDate = FastDateFormat.getInstance("yyyyMMdd").format(
//				order.getCreateDate());
//
//		String priv1 = "";
//		String rest = null;
//		SecureLink sl = new SecureLink(key);
//		if ("PAY".equals(action)) {
//			String context = merid + order.getPayNumber() + transAmt + "156"
//					+ transDate + "0001" + priv1;
//			rest = sl.Sign(context);
//		} else if ("REFUND".equals(action)) {
//			String context = merid + transDate + "0002" + order.getPayNumber()
//					+ transAmt + priv1;
//			rest = sl.Sign(context);
//		} else if ("QUERY".equals(action)) {
//			String context = merid + transDate + order.getPayNumber() + "0001";
//			rest = sl.Sign(context);
//		}
//		return rest;
//	}
//	/**
//	 * 将Unicode码转换为中文
//	 * 
//	 * @param unicode
//	 * @return
//	 */
//	public static String tozhCN(String unicode) {
//		StringBuffer gbk = new StringBuffer();
//		String hex[] = unicode.split("\\\\u");
//		for (int i = 1; i < hex.length; i++) {
//
//			int data = Integer.parseInt(hex[i], 16);
//			gbk.append((char) data);
//		}
//		return gbk.toString();
//	}
//
//	/**
//	 * 将字符串转换为Unicode码
//	 * 
//	 * @param zhStr
//	 * @return
//	 */
//	public static String toUnicode(String zhStr) {
//		StringBuffer unicode = new StringBuffer();
//		for (int i = 0; i < zhStr.length(); i++) {
//			char c = zhStr.charAt(i);
//			unicode.append("\\u" + Integer.toHexString(c));
//		}
//		return unicode.toString();
//	}
//
//	/**
//	 * 银行名开户银行代码转化
//	 * 
//	 * @param bankname
//	 * @return
//	 */
//	public static String bankname2openBankId(String bankname) {
//		if ("邮储银行".equals(bankname)) {
//			return "0100";
//		} else if ("中国工商银行".equals(bankname)) {
//			return "0102";
//		} else if ("中国农业银行".equals(bankname)) {
//			return "0103";
//		} else if ("中国银行".equals(bankname)) {
//			return "0104";
//		} else if ("中国建设银行".equals(bankname)) {
//			return "0105";
//		} else if ("交通银行".equals(bankname)) {
//			return "0301";
//		} else if ("中信银行".equals(bankname)) {
//			return "0302";
//		} else if ("中国光大银行".equals(bankname)) {
//			return "0303";
//		} else if ("中国民生银行".equals(bankname)) {
//			return "0305";
//		} else if ("广发银行".equals(bankname)) {
//			return "0306";
//		} else if ("深发展银行".equals(bankname)) {
//			return "0307";
//		} else if ("招商银行".equals(bankname)) {
//			return "0308";
//		} else if ("兴业银行".equals(bankname)) {
//			return "0309";
//		} else if ("中国平安银行".equals(bankname)) {
//			return "0401";
//		}
//		return null;
//	}
//}
